Computers, such as the IBM iSeries host, create a virtual device for every client that is connected. Through the virtual device the data flows between the IBM iSeries host and the clients. Each virtual device has a unique device name. These device names are either generated by the iSeries host or specified by the clients as part of NEW ENVIRONMENT data during the Telnet negotiations, which occur during session initiation.
Only one device name can be specified at a time during Telnet negotiation. If the device name specified is already in use by another client then this negotiation tails and the host returns an error warning, for example, “Device already in use”. In such a case, the client has to change the device name and negotiate again. This process will go on until a valid device name is negotiated or the user cancels the connection. Many clients automatically disconnect after the first failure while some allow users to modify device name. Yet other clients automatically generate a new device name and restart negotiations. Client may choose yet another option, which lets the Telnet Server generate a device name automatically and assign it to a virtual device.
Different problems arise because only one device name can be negotiated at a time. Customers would like to group all their devices based on some criteria such as, all device using English language are grouped under ENGLISH subsystem, all device using French are grouped under FRENCH subsystem and so on. By grouping this way customers can monitor and manage their devices efficiently. Another way of grouping may be based on departments in a company like all Sales device are grouped under SALES subsystem, Administration under ADMIN subsystem and so on. Each of the device names may begin with EN_DEV and rest of the characters in the device name can be a number 001, 002 etc, thus device names will be formed as EN_DEVN001, EN_DEVN002 etc. Emulators can start trying with EN DEVN001 first and if that name is available the session gets established. But that only happens in an ideal case. It is often the case that EN_DEVN001 device name might already be in use by another client. Emulator can increment and use EN_DEVN002 and try to establish a session. This process can go on until a valid device name is negotiated. However, the process may become time consuming if there are many clients trying to establish a session. That is, many iterations of negotiating and renegotiating may need to be processed before a session gets established.
In addition, because only one device name is negotiated at time, a lot of data flows over the network. Many clients trying to establish sessions will create a considerable amount of data flow and put a burden on the network. This also places heavy load on host computers such as the iSeries host since the hosts need to handle the large number of concurrently occurring negotiations.
For example, for every rejected device name, the iSeries Telnet server sends 75-byte long diagnostic information indicating the rejected device name. The server also sends another request that is about 14 bytes long for resending a device name. The client resends a device name with length of about 25 bytes. Thus, a total of approximately 114 bytes of additional data flows when a device name is rejected. This amount of data is attributed only to the Telnet layer; data from TCP/IP layers and below is not included.
Consider 35 clients trying to establish a session. Applying the above calculations, the amount of Telnet data that flows is approximately 67,830 bytes. That is, the first client will get connected at the first attempt itself the second one at second attempt, third one at third attempt and so on, 35th client will get connected at 34th attempt. There will be a total of 595 additional attempts to establish a session, thus 595×114=67,830.
Other systems operate by communicating a list of possible device names from which an unused name may be picked. The list, however, could become large and cumbersome. Therefore, what is desirable is a method and system for negotiating a device name for communications that mitigates the burden imposed on the network and the computer systems.